home *** CD-ROM | disk | FTP | other *** search
/ Aminet 23 / Aminet 23 (1998)(GTI - Schatztruhe)[!][Feb 1998].iso / Aminet / util / conv / TextCnvDocs.lha / textconvdocs151d / developer / readconvtab.c < prev   
Encoding:
Text File  |  1997-09-27  |  2.2 KB  |  89 lines

  1.   /*
  2.       readconvtab.c
  3.       Beispiel, wie die ACT-Dateien von TextConv ausgelesen werden
  4.       Letzte Änderung:27.09.1997
  5.  
  6.       Achtung: Diese Datei ist nur ein Codefragment, welches als Beispiel
  7.       und Vorlage diesen soll.
  8.       Diese Datei kann nicht direkt compiliert werden!
  9.   */
  10.  
  11.  
  12.   /*
  13.       Rückgabewerte:
  14.  
  15.       0 - OK
  16.       1 - Datei konnte nicht geöffnet werden
  17.       2 - Datei ist keine ACT-Datei
  18.       3 - Falsche Dateiversion
  19.       4 - Falsche Tabellenkennung (zB bei IBM2ANSI - Kennung IBM2MAC)
  20.       5 - Sonstiger Fehler
  21.   */
  22.  
  23.   FILE *tabfile;     /* Zeiger auf die zu ladende Tabellendatei */
  24.   UBYTE header[20];  /* Buffer zum Laden des Headers */
  25.   UBYTE error;       /* Rückgabewert für Warnungen (3 und 4) */
  26.   int i;             /* Allg. Zähler */
  27.  
  28.  
  29.   /* Beispiel: ANSI2IBM */
  30.  
  31.   error=0;
  32.  
  33.   if(!(tabfile=fopen("PROGDIR:convtables/ansi2ibm.act","rb"))) /* Öffne Datei */
  34.   {
  35.       return(1);
  36.   }
  37.  
  38.   fread(header, sizeof(UBYTE), 20, tabfile);           /* Lese Header */
  39.  
  40.  
  41.   /* MagicBytes Kennung prüfen */
  42.  
  43.   if((header[0]=='S')&&(header[1]=='C')&&(header[2]=='T')&&(header[3]=='A')&&(header[4]=='C')&&(header[5]=='T'))
  44.   {
  45.      /* MagicByte Kennung erfolgreich - Beta: Ausgabe */
  46.   }
  47.   else
  48.   {
  49.      /* MagicByte Kennung fehlgeschlagen - Beendigung und Fehlerrückgabe */
  50.      return(2);
  51.   }
  52.  
  53.  
  54.   /* Dateiversion prüfen */
  55.  
  56.   if((header[6]==1)&&(header[7]==0))
  57.   {
  58.      /* Versionsprüfung (Version 1.0) erfolgreich - Beta: Ausgabe */
  59.   }
  60.   else
  61.   {
  62.      /* Versionsprüfung fehlgeschlagen - error für Ruckgabe setzen */
  63.      error=3;
  64.   }
  65.  
  66.  
  67.   /* Tabellenkennung prüfen */
  68.  
  69.   if((header[8]==' ')&&(header[9]=='A')&&(header[10]=='N')&&(header[11]=='S')&&
  70.      (header[12]=='I')&&(header[13]=='2')&&(header[14]=='I')&&(header[15]=='B')&&
  71.      (header[16]=='M')&&(header[17]==' ')&&(header[18]==' ')&&(header[19]==' '))
  72.   {
  73.      /* Tabellenkennungsprüfung erfolgreich - Beta: Ausgabe */
  74.      /* printf("Tabellenkennungsprüfung erfolgreich \n");*/
  75.   }
  76.   else
  77.   {
  78.      /* Tabellenkennungsprüfung fehlgeschlagen - error für Ruckgabe setzen */
  79.      error=4;
  80.   }
  81.  
  82.  
  83.  
  84.   /* Prüfungen abgeschlossen - lade Tabelle und Ende */
  85.   fread(convTab, sizeof(UBYTE), 256, tabfile);           /* Lese Tabelle */
  86.   fclose(tabfile);
  87.   return(error);
  88.  
  89.